function MyNew(fn, ...args) {
  //创建一个新对象obj 并关联obj原型到构造函数原型对象上
  let obj = Object.create(fn.prototype)
  //添加属性到新对象上 并获取obj函数的结果
  let res = obj.apply(fn, args)
  //如果执行结果有返回值并且是一个对象 返回执行的结果 否则返回新创建的对象
  let flag = res && (typeof res === "object" || typeof res === "function")
  return flag ? res : obj
}

//手写Object.create
function create(obj) {
  function F() {}
  F.prototype = obj
  return new F()
}
